package com.nc.mem.tests.poly.a;

public abstract class A {

	protected boolean a;
	protected byte b;
	char c;
	short d;
	int e;
	float f;
	long g;
	double h;
	String i;
	Boolean j;
	Character k;
	Short l;
	Integer m;
	Float n;
	Long o;
	Double p;

	@Override
	public boolean equals(final Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		final A other = (A) obj;
		if (a != other.a) {
			return false;
		}
		if (b != other.b) {
			return false;
		}
		if (c != other.c) {
			return false;
		}
		if (d != other.d) {
			return false;
		}
		if (e != other.e) {
			return false;
		}
		if (Float.floatToIntBits(f) != Float.floatToIntBits(other.f)) {
			return false;
		}
		if (g != other.g) {
			return false;
		}
		if (Double.doubleToLongBits(h) != Double.doubleToLongBits(other.h)) {
			return false;
		}
		if (i == null) {
			if (other.i != null) {
				return false;
			}
		} else if (!i.equals(other.i)) {
			return false;
		}
		if (j == null) {
			if (other.j != null) {
				return false;
			}
		} else if (!j.equals(other.j)) {
			return false;
		}
		if (k == null) {
			if (other.k != null) {
				return false;
			}
		} else if (!k.equals(other.k)) {
			return false;
		}
		if (l == null) {
			if (other.l != null) {
				return false;
			}
		} else if (!l.equals(other.l)) {
			return false;
		}
		if (m == null) {
			if (other.m != null) {
				return false;
			}
		} else if (!m.equals(other.m)) {
			return false;
		}
		if (n == null) {
			if (other.n != null) {
				return false;
			}
		} else if (!n.equals(other.n)) {
			return false;
		}
		if (o == null) {
			if (other.o != null) {
				return false;
			}
		} else if (!o.equals(other.o)) {
			return false;
		}
		if (p == null) {
			if (other.p != null) {
				return false;
			}
		} else if (!p.equals(other.p)) {
			return false;
		}
		return true;
	}

	public byte getB() {
		return b;
	}

	public char getC() {
		return c;
	}

	public short getD() {
		return d;
	}

	public int getE() {
		return e;
	}

	public float getF() {
		return f;
	}

	public long getG() {
		return g;
	}

	public double getH() {
		return h;
	}

	public String getI() {
		return i;
	}

	public Boolean getJ() {
		return j;
	}

	public Character getK() {
		return k;
	}

	public Short getL() {
		return l;
	}

	public Integer getM() {
		return m;
	}

	public Float getN() {
		return n;
	}

	public Long getO() {
		return o;
	}

	public Double getP() {
		return p;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (a ? 1231 : 1237);
		result = prime * result + b;
		result = prime * result + c;
		result = prime * result + d;
		result = prime * result + e;
		result = prime * result + Float.floatToIntBits(f);
		result = prime * result + (int) (g ^ g >>> 32);
		long temp;
		temp = Double.doubleToLongBits(h);
		result = prime * result + (int) (temp ^ temp >>> 32);
		result = prime * result + (i == null ? 0 : i.hashCode());
		result = prime * result + (j == null ? 0 : j.hashCode());
		result = prime * result + (k == null ? 0 : k.hashCode());
		result = prime * result + (l == null ? 0 : l.hashCode());
		result = prime * result + (m == null ? 0 : m.hashCode());
		result = prime * result + (n == null ? 0 : n.hashCode());
		result = prime * result + (o == null ? 0 : o.hashCode());
		result = prime * result + (p == null ? 0 : p.hashCode());
		return result;
	}

	public boolean isA() {
		return a;
	}

	public void setA(final boolean a) {
		this.a = a;
	}

	public void setB(final byte b) {
		this.b = b;
	}

	public void setC(final char c) {
		this.c = c;
	}

	public void setD(final short d) {
		this.d = d;
	}

	public void setE(final int e) {
		this.e = e;
	}

	public void setF(final float f) {
		this.f = f;
	}

	public void setG(final long g) {
		this.g = g;
	}

	public void setH(final double h) {
		this.h = h;
	}

	public void setI(final String i) {
		this.i = i;
	}

	public void setJ(final Boolean j) {
		this.j = j;
	}

	public void setK(final Character k) {
		this.k = k;
	}

	public void setL(final Short l) {
		this.l = l;
	}

	public void setM(final Integer m) {
		this.m = m;
	}

	public void setN(final Float n) {
		this.n = n;
	}

	public void setO(final Long o) {
		this.o = o;
	}

	public void setP(final Double p) {
		this.p = p;
	}

	@Override
	public String toString() {
		return "A [a=" + a + ", b=" + b + ", c=" + c + ", d=" + d + ", e=" + e + ", f=" + f + ", g=" + g + ", h=" + h + ", i=" + i + ", j=" + j + ", k=" + k + ", l=" + l + ", m=" + m + ", n=" + n + ", o=" + o + ", p=" + p + "]";
	}

}
